package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 参保人员-医保报销记录对象 reimbursement_records
 * 
 * @author ruoyi
 * @date 2025-04-13
 */
@ApiModel(value = "ReimbursementRecords", description = "参保人员-医保报销记录对象")
public class ReimbursementRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    private String name;

    /** 参保人id */
    @ApiModelProperty(name = "参保人")
    private Long insuredPersonD;

    /** 参保人 */
    private InsuredPersons insuredPersons;

    /** 医疗机构 */
    @ApiModelProperty(name = "医疗机构")
    private String medicalInstitution;

    /** 就诊日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "就诊日期")
    private Date visitDate;

    /** 医疗总费用 */
    @ApiModelProperty(name = "医疗总费用")
    private BigDecimal totalMedicalCost;

    /** 自付金额 */
    @ApiModelProperty(name = "自付金额")
    private BigDecimal selfPayment;

    /** 报销金额 */
    @ApiModelProperty(name = "报销金额")
    private BigDecimal reimbursementAmount;

    /** 转入账户 */
    @ApiModelProperty(name = "转入账户")
    private String transferAccount;

    /** 状态('0-已报销', '1-处理中') */
    @ApiModelProperty(name = "状态('0-已报销', '1-处理中')")
    private Long status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public InsuredPersons getInsuredPersons() {
        return insuredPersons;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setInsuredPersons(InsuredPersons insuredPersons) {
        this.insuredPersons = insuredPersons;
    }

    public void setInsuredPersonD(Long insuredPersonD)
    {
        this.insuredPersonD = insuredPersonD;
    }

    public Long getInsuredPersonD() 
    {
        return insuredPersonD;
    }

    public void setMedicalInstitution(String medicalInstitution) 
    {
        this.medicalInstitution = medicalInstitution;
    }

    public String getMedicalInstitution() 
    {
        return medicalInstitution;
    }

    public void setVisitDate(Date visitDate) 
    {
        this.visitDate = visitDate;
    }

    public Date getVisitDate() 
    {
        return visitDate;
    }

    public void setTotalMedicalCost(BigDecimal totalMedicalCost) 
    {
        this.totalMedicalCost = totalMedicalCost;
    }

    public BigDecimal getTotalMedicalCost() 
    {
        return totalMedicalCost;
    }

    public void setSelfPayment(BigDecimal selfPayment) 
    {
        this.selfPayment = selfPayment;
    }

    public BigDecimal getSelfPayment() 
    {
        return selfPayment;
    }

    public void setReimbursementAmount(BigDecimal reimbursementAmount) 
    {
        this.reimbursementAmount = reimbursementAmount;
    }

    public BigDecimal getReimbursementAmount() 
    {
        return reimbursementAmount;
    }

    public void setTransferAccount(String transferAccount) 
    {
        this.transferAccount = transferAccount;
    }

    public String getTransferAccount() 
    {
        return transferAccount;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("insuredPersonD", getInsuredPersonD())
            .append("medicalInstitution", getMedicalInstitution())
            .append("visitDate", getVisitDate())
            .append("totalMedicalCost", getTotalMedicalCost())
            .append("selfPayment", getSelfPayment())
            .append("reimbursementAmount", getReimbursementAmount())
            .append("transferAccount", getTransferAccount())
            .append("status", getStatus())
            .toString();
    }
}
